home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Super Platinum 8
/
Shareware Super Platinum 8.iso
/
mac
/
MODEMPRO
/
DEP304.ZIP;1
/
DEPARC.EXE
/
README.EXE
(
.txt
)
< prev
next >
Encoding:
Amiga
Atari
Commodore
DOS
FM Towns/JPY
Macintosh
Macintosh JP
Macintosh to JP
NeXTSTEP
RISC OS/Acorn
Shift JIS
UTF-8
Wrap
David's Readme Compiler Executable
|
1992-10-05
|
128.0 KB
|
1,849 lines
4YY_^
2YY_^
H PT
nY_^
H9E0}
; A B D G H I K M O P Q R S s t u vQ
`Y_^]
YYF;6
A B D7
<Ar ,@
_^_^]
H I K M P Q6*6*V*$*{*
H I Q
YYF;v
;Dz~
H I K M P Q
DF_^]
YY9|,uK
;D@ui
;DDu2
H9D0~
9D<| u
17Y;D2v
H9D0u
YY_^]
YY_^]
p5Y)D:
1Y;D2wK
`[.97t
G H I K M O P Q R S s t u w
fJfJfFf
eJfJf
eJfJf=f(f#eYe
u/SQR
ntm9n
pfmlmU
[[XP3
!r.RP
!r$RP
t$Ot!
tx#>>
Borland C++ - Copyright 1991 Borland Intl.
Null pointer assignment
Divide error
Abnormal program termination
Courier
ind text <F7>
find
gain <F8>
rint entry
ave entry
dit entry
LPT1:
LPT2:
LPT3:
Printer port :
PostScript? :
Press <Space> to change values
%!PS-Adobe-2.0
%%Creator:DRC v2.0
%%EndComments
/leftmargin { 40 } bind def
/bot { 54 } bind def /top {
} bind def
/cw { 40 } bind def
/xtab
{currentpoint exch dup cvi
leftmargin cvi sub cvi
cw cvi mod sub
cw add
exch moveto
} bind def
/ptsize { 12 } bind def /lead { 12 } bind def
/F { findfont exch scalefont setfont } bind def
/newline {
currentpoint exch pop lead sub
dup bot lt {
pop showpage restore save
top
} if
leftmargin exch moveto
} bind def
%%Endprolog
%%BeginSetup
ptsize /| F
leftmargin top moveto
%%EndSetup
Do you want to overwrite
%.20s (Y/N)?
File exists
%-50.50s
newline
) show newline
newline
showpage restore
Print Settings
- Printing -
Save as what file?
Failed saving to file!
PgUp/Dn:
<F10>
options
PgUp/Dn
Line %d of %d
Search for
David's Readme Compiler, (c) 1992, David Harris.
Readme error: no attached data.
Topics
MMMODE
; < = > ? @ A B C D T U V W X Y Z [ \ ]
G O w u R S s t
EAEIIOOUUYIOU
(press any key to continue)
Insert paper in printer then press
a key (<ESC> cancels print)
Printer error
The printer on LPT%d: is
confused
out of paper
off line
Correct then press a key
or hit <ESC> to cancel print
Insert Paper
<ESC>
key pressed:
Please confirm cancel/quit
Accept this data?
Insufficient disk space
There is not enough space on the target
disk to receive the file(s): please replace
the disk with another formatted disk, then
press any key to retry, or <ESC> to cancel
0123456789
!!!!!
@@@@@@@@@@@@@@@
@@@@@@@
@@@@@@
@@@@
),(((((),(((
(null)
print scanf : floating point formats not linked
uData file generated by RCOM.
Deputy Communications Software - A Brief Guide
About Deputy
Deputy's Features
Changes in Version 3.04
The Shareware Concept
Software Licence
How to Register & Price
Installation
Instructions
Notes for distribution
Special Modem Offers
Services from S/E/G
Getting going
Using Menus
Setting up Deputy
The Main Menu
MNP5 Data Compression
File Transfer
The Text Editor
The Dial Directory
Other Features
Deputy Host Mode
Calling the Deputy Host
The Deputy Script Language (DSL)
Script Auto-Learning
Writing your own scripts
DSL Command List
Example Script
Command Line Arguments
Credits
Advanced Communications software with MNP5 data compression
(c) 1992 S/E/G Communications Email: Segcom@cix.compulink.com.uk
Written by Anders Heerfordt & Michael Spalter
Thankyou for obtaining this shareware copy of DEPUTY. There are
many communications programs around now, but Deputy presents the
most advanced and useful facilities in a way which is simple to
use for the novice and yet not cumbersome for the expert.
This Brief Guide should hopefully give you good idea of what to
expect from Deputy once you start using it. Do remember that any
section of this guide can be sent to the printer by pressing F10.
We are sure that you'll find this guide useful and hope that you
find Deputy suitable for your purposes and will register soon.
We often make alterations and improvements to Deputy as a result
of user feedback; because of this, the manual may not always match
the software exactly.
Readme Version 1.4
This Brief Guide was created using DRC by David Harris; he
can be reached by Email at david@otago.ac.nz.
MNP is a registered Tradmark of Microcom Inc.
Deputy is a registered tradmark of S/E/G Communications
Netware is a registered trademark of Novell Inc.
Deputy's Main Features
Avaiable in FOUR European Languages (more soon !)
MNP Levels 2,4 & 5 error correction & data compression
Powerful script language with 'learn' facility and
supporting 32 bit integers, string/integer arrays,
calling of daughter scripts and random access filing.
VT52/100/200/320, ANSI, Prestel, Minitel & Wyse60 Emulations
Full mouse support, including script language commands
Background file transfers - including droping to DOS
Zmodem, Xmodem, Ymodem, YmodemG, ASCII & Kermit protocols
Full history logs of all file transfers, with CPS rates
Built-in context sensitive informative help screens
Host mode with messaging and file transfer facilities
User friendly dial directory with history of all calls
Support for all DTE rates up to 115200 bps & 1200/75 split
Novell (tm) NACS/NASI Interface with multi-session support
Easy to learn user interface with 'Hot-Key' commands
Support for 16550 buffered UARTS & INT14 interfaces
Pop-up menu windows can be shifted horizontally/vertically
External protocol support & 43/50 line VGA modes
Mercury compatibility with id encryption (UK only)
Changes in Version 3.04
Since version 3.00, user feedback has enabled us to make various
changes to Deputy to make it even more user friendly. In addition,
we have made various performance enhancements and added some new
features. Notably, the user interface has now been changed to a
'pull down' style and you can now use a mouse to control Deputy. The
following list details most of the noticable changes, in no
particular order. Further details are given at the bottom:
* All IRQ's from 2-7 are now allowed for custom ports
* Message to show 'no scripts' added.
* Script menu is now not limited to 15 script names
* DSL Commands added:
NAP, DTR, CTS, RTS, RI, DSR, WrStr, FSeek
FTell, FRdChar, FWrChar, CloseGrab, TDelay
* New DSL command: SendChar(ch:CHAR) added to script language.
* New DSL command: SetRawLog(b:BOOLEAN) added to script language.
* effect of /r in strings changed to carriage return only
* Integers are now 32 bits
* Menuing system redesigned; now uses a 'pull down' system.
* String Arrays are now fully tested and supported
* Mouse support added ! Left button brings up menu.
* Mouse(Boolean) DSL command added - enables the mouse cursor
* ReadMouse() DSL function returns buttons pressed
* WhereMouse(X,Y) will return 0-79,0-24 giving mouse position
* Fsize and Diskspace now return results in bytes not Kb
* File Menu now shows printer status (on or off)
* Self-contained manual now has a search option.
* Mercury dialling tidied up on the screen
* Zmodem transfers speeded up on 8250 and slow machines.
* 43/50 line mode routines changed.
* When trying to load too large a file to editor, it will refuse.
* Selecting port that doesnt 'exist' will give you warning
* 16550 FIFO status restored when program exits
* Some work done to make shelling to DOS safer under DOS5 and later.
* Kermit changed to make it better cope with parity errors on Kermit7.
* Kermit7 protocol added to upload menu
* 'Type' option moved to upload menu
* Upload directory added to file transfer setup menu
* The -Z command line option now disables Zmodem streaming
* Kermit changed so that the AddCR doesn't have an effect.
* Shareware message is now not flashing and is less frequent.
* Keyboard is polled less frequently during file downloads.
* Some changes to the sequence of events at loadtime/exittime
* Change to learn mode, to do with the effect of ESC.
* If program runs out of free memory, ESC won't misbehave.
* Some causes of obscure hangs fixed
* Various 'little niggles and quirks' changed
* Array elements can be set by procedures such as read();
* Compiler won't scroll seeen if there's an error
* Pressing Ctrl-Space when online now sends a 'null'.
* The Macros from the setup are now set when the program loads.
* Macros are reset when carrier drops.
* The cursor is forced on when the program exits
* DSL command Pos() now returns -1 if it doesnt find a match.
* Mouse now also works in Y/N windows. Works as ESC in menus.
* Changes done done to Minitel in the areas of inverted attribute,
double hight attribute, accents, and undocumented terminall features.
* Changes to make cursor come out in proper shape after videomode changes.
* Install program altered and made friendlier
* A problem with Wyse semigraphics sometimes not working, fixed.
Change Details
1. The structures of both the dial directory and configuration
files for Deputy have altered since version 3.00. We apologise
for any inconvenience this may cause. As such, you will need
to re-enter all information. Ensure that you note down all
dial directory details before deleting the old one !
2. The user interface has been somewhat redesigned since
version 3.00. A proper pull down system now exists
with which you can move from menu to menu using the
left and right arrow keys. When you select any of
Deputy's top level menus, a bar menu also appears
at the top of the screen. Pressing the 'Ctrl' key
with the cursor keys now moves windows around.
3. You can now use the mouse to move around and select menus.
From main terminal mode, press the LEFT button to bring up
the new Deputy bar menu. RIGHT button simulates Escape.
4. The following DSL commands have been added:
PROC Nap(); Sends script 'to sleep' until carrier drop
PROC DTR(BOOLEAN); Toggles the status of the DTR output
PROC RTS(BOOLEAN); Toggles the status of the RTS output
FUNC CTS() : BOOLEAN; Returns the status of the CTS input
FUNC DSR() : BOOLEAN; Returns the status of the DSR input
FUNC RI() : BOOLEAN; Returns the status of the RI input
PROC CloseGrab(Handle); Cancels a previous 'Grab' command
PROC TDelay(ticks); Waits the duration (tick = 1/18 second)
PROC SendChar(char); Transmits a single character
PROC SetRawLog(BOOLEAN); Selects log type (Raw or Clean)
PROC Mouse(BOOLEAN); Enables/Disables the mouse cursor
PROC WhereMouse(X,Y); Returns mouse cursor position
FUNC ReadMouse(); Returns mouse buttons pressed
PROC FSeek(Handle,Pos); Moves file pointer to position 'Pos'
FUNC FTell(Handle) : INTEGER; Returns file pointer position
The syntax of the following command has changed, as shown:
FUNC FRdChar(Handle) : CHAR; (see page 17-12.1)
The following commands now return size in bytes, not Kbytes:
FSize(Filename); DiskSpace(); (see page 17-13)
The Shareware Concept
This software is provided on a try-before-you-buy arrangement.
You may use the software for up to 30 days without payment, to
determine if it meets your requirements. If, after this time, you
wish to continue using the software, you are required to register
it and make full payment. Payment entitles you to continue using
the software; in addition you will receive a printed manual and a
copy of the latest (non-shareware) version of Deputy.
Also, once you register Deputy, you will be entitled to receive
updates of the software for one year, subject to a small handling
fee to cover the costs of distribution. You will also be entitled
to 90 days unlimited telephone support from our London office.
Technical support is also available on Compuserve, Cix and other
commercial online system in the UK and Worldwide.
You are encouraged to distribute the shareware version of this
software amongst friends and collegues and upload it to bulletin
boards so that others can evaluate it; it must be distributed in
its original form and complete with all associated files. No
money may be charged for such distribution, other than for
legitimate copying or media charges. Deputy may not be supplied
as part of any other purchase without written permission. We
reserve the right to withdraw or alter this licence at any time.
The Shareware Concept relies on honesty; many months of hard work
have gone into creating this software. Continued development can
only be possible by support from the users. If you have comments,
suggestions (or even complaints) about the software please let us
know about them.
Remember that this shareware version of Deputy, although fully
functional, is only intended to give you a trial-run of Deputy -
there are some facilities which to take full advantage of, you
may need to refer to the manual which you will receive when you
register.
Software Licence
This user manual and the associated software is protected by
international copyright law. Unauthorised duplication, other than
that allowed under the shareware distibution concept described
herein is prohibited. Please read the licence terms shown below
before using this software. ALL TRADEMARKS ACKNOWLEDGED. 'MNP' is
a registered trademark of Microcom Corp. 'Hayes' is (c) Hayes
Inc. MS-DOS is (c) Microsoft Corp. 'Deputy' is (c)
S/E/G Communications.
Deputy is NOT 'free' or 'public domain' software. Deputy
(comprising the software, utilities, supporting files and all
documentation) is the copyright property of S/E/G Communications.
It may not be duplicated in part or full, except under the terms
laid out in the shareware agreement shown elsewhere. Deputy may
not be supplied with any other paid-for goods or services
without prior written permission. S/E/G may at any time withdraw
the shareware licence. Due to our continuing programme of ongoing
product development, we cannot guarantee that these instructions
will match the software exactly; from time to time, features are
added, removed or altered. It should be remembered that although
Deputy provides compatibility with various terminal emulations,
there are many differences between PC's and dedicated terminals;
as such, various compromises have to be made with the emulations.
The software and documentation may not be modified or
reverse-engineered in any way. The software is provided "as-is".
Neither S/E/G Communications or the authors offer any warranty
that Deputy is suitable for your purposes or error-free. No
responsibility is accepted for any loss arising as a direct or
indirect result of using the software. This being so, every care
has been taken to ensure that the software is free of defects.
Users are granted a non-exclusive licence to sample the software,
but ownership of the software and documentation remains the
property of the copyright owners. Usage outside the terms of the
shareware terms stated elsewhere in this document is prohibited.
IN ADDITION TO THE ABOVE, ALL PARTIES ARE PROTECTED BY ANY
STATUTORY LAWS IN THEIR COUNTRY, PARTICULARLY THOSE RELATED TO
COPYRIGHT AND SOFTWARE THEFT. ANY PERSON OR ORGANISATION FOUND
CONTRAVENING ANY TERMS OF THIS LICENCE ARE LIABLE TO PROSECUTION.
Deputy Registration Details
For your convenience, print out the following order form; to do
so, ready your printer and then press 'P'. The easiest way to
register Deputy is with your credit card. You can make your order
by fax, phone or mail or E-mail. Site licences are available. For
users in the USA, please see the other section "Foreign Orders".
The current registration price is
49 (UK Pounds), until 31/12/92
Surname ......................... Initials ................
Company Name (if applicable) ..............................
Address ...................................................
...........................................................
From where did you obtain Deputy ? ........................
Please supply ...... copies of Deputy at
49 each (UK Pounds)
Language Required ............ (USER GUIDE IS ONLY IN ENGLISH)
The standard manual is spiral bound. A deluxe manual with
larger paper and in a smart ring binder with a slip case is
also available at an additional
Carriage:
3 UK
5 Europe
7 Rest of the world
VAT @ 17.5% must be added to all orders within the UK
(e.g. One copy of Deputy, for UK delivery is
61.10 inc.)
Total Payable ............... Disc Size: 3.5 / 5.25 / 360K
Payment by: Money order / Visa / Mastercard / Cheque
Card Number ............................... Expires .......
Cardholder Name/Address ...................................
...........................................................
An invoice will be provided. Send or Fax completed form to:
Deputy Registration Or Call: (081) 959 3377
S/E/G Communications Fax: (081) 959 2137
137 Hale Lane
Edgware International: + 44 81 959 3377
Middx HA8 9QP Fax: + 44 81 959 2137
United Kingdom Email: segcom@cix.compulink.co.uk
Compuserve: 100111,3165@compuserve.com
WE REALLY DO VALUE YOUR OPINION. If you have comments or suggestions
about Deputy, please let us know. Deputy is a user supported program.
Installation
If this disc was provided on disc directly by
S/E/G Communications or from a software library then follow the
instructions on the floppy disc to copy all the files into a
suitable directory. Answer the questions when prompted and the
installation process should then complete automatically.
If this software was downloaded from a bulletin board or other
online system, un-arc or un-zip the files into a newly created
directory, e.g. C:\DEPUTY.
This archive should contain the following files:
README.EXE - The Automatic brief guide to Deputy (this!)
DEPUTY.EXE - The main executable file
SCREENST.TXT - The login screen for the host mode
DEFAULT.HLP - Help Data (One file for each language)
DEFAULT.LNG - Language file (one for each language)
DEPUTY.CFG - Configuration file (this file may be missing)
DEPUTY.DIR - The Default dial directory
DEPUTY.MSG - Default file for text editor (you can delete this)
DSLFILES.EXE - Sample DSL source files (self-extracting, run it)
To start Deputy, change to its directory and type: 'DEPUTY <ENTER>'.
IMPORTANT NOTES FOR SHAREWARE VENDORS / BULLETIN BOARDS ETC.
Vendors of shareware discs are welcome to distribute the shareware
verion of Deputy in its complete form providing that they first notify
S/E/G that they intend doing so - this is so that we can keep you on
our database to ensure that you always have the latest version of
Deputy. Such distribution is subject to all the normal terms shown in
the shareware licence elsewhere. Vendors may not charge more than
for supplying Deputy, although most vendors charge considerably
less. It should be made clear to purchasers that they are not buying or
paying for the registration of the software; the fee they pay to you is
merely an administration and distribution charge.
Bulletin Boards and other online systems are also welcome to distribute
the shareware version of Deputy to their users in its complete form as
long as no special charge is made for the distribution, other than your
normal connection/online charges.
Deputy MAY NOT be supplied together with any other goods or services
without the written permission of S/E/G; for instance, Deputy may not
be bundled when selling modems. If you wish to do this, please call
S/E/G for clearance first.
SPECIAL MODEM OFFERS
Multitech MT1432MK V32bis Data/Fax Modem ONLY
499 + VAT !!!
Fully BABT approved, the MT1432MK modem is a desktop/pocket
sized modem providing both 14400 bps V32bis data rate plus full
send and receive fax facilities, available now at a very
special offer price of just
499+VAT complete with all leads,
software, mains adaptor, carry case and battery. Please call
us for more details. Price subject to change without notice.
Miracom Courier High Speed Modems - Low prices !
As one of the most popular ranges in the the UK, the Miracom
Courier range is backed up by a full 5 year warranty. S/E/G
always offer very special prices on the complete range but as
special offers are always being offered, please call us for the
latest prices.
We not only offer excellent prices, we are always here
afterwards to offer you after-sales support to help you use
your new modem. We can accept credit card orders which means
that you can usually have your modem the next day (UK
Mainland). Call us on (UK) 081 959 3377.
Other Services from S/E/G
MODEM SUPPLY
As well as being the producers of DEPUTY, S/E/G's other services
include the supply and support of modems. Whatever your current
requirements are, give S/E/G a call for the most competitive
prices on all popular brands including Miracom, Pace, Dowty,
Dataphone, Penril, Amber Logic, Racal and most other brands.
We supply modems for all applications; dialup or leased lines,
high security, encrypting modems, desktop, card, pocket and
rackmount modems, low speed modems and ultra-high speed modems.
We also supply combined fax-modems giving you the full
functionality of a high speed modem, coupled with the ability
to send and receive faxes to/from any other fax machine.
LAN INSTALLATION / SUPPORT
Our team of trained LAN experts will be happy to advise you on
your LAN requirements. Specialising in Novell Netware, we can
supply and install the latest LAN technology using your choice
of topologies and operating systems. As well as the supply, we
offer comprehensive support services for both new and existing
LAN's, so if you already have a LAN which needs upgrading or
just simply 'looking after', it is worth talking to us.
Customised Software From S/E/G
DEPUTY DEVELOPERS EDITION
A special version is available of Deputy which compiled DSL
source files into standalone executable files. These compiled
DSL executables may be freely distributed or resold without
further payment to S/E/G. For details on 'Deputy Runtime'
please contact S/E/G - it is available to special order only.
CUSTOMISED DEPUTY
Deputy was designed to be suitable for many comms requirements
but sometimes, you require just a little bit, or even a lot of
customisation to make a program more suitable for your needs.
S/E/G can produce customised versions of Deputy for specific
applications; this costs a lot less than you might imagine, so
please don't hesiate to call us to discuss the possibilities.
BESPOKE SYSTEMS
As well as communications software, S/E/G produces varied
bespoke software for clients. If you have a requirement for a
software package, or complete suite of software, our team of
programmers can produce quality software products quickly,
efficients and reliably. Again, please give us a call to
discuss your requirements.
** HELP IS ALWAYS AVAILABLE WITHIN DEPUTY BY PRESSING ALT-F1 **
This shareware version of the manual assumes that you have a
'basic' knowledge of comms principles; being somewhat of a
potential minefield, this guide would soon become three volumes
thick if we attempted to unravel comms for everyone.
Remember that this manual is only a very brief intruction guide;
when you register Deputy, you receive the full printed manual
which covers everything in much greater depth.
If this is the first time you have run Deputy, it probably won't
be configured. As such, it will immediately ask you the most
important setup options; the screen you are using (colour or
mono) and to which port your modem is connected to (e.g. COM1).
If this version of Deputy has come with any language files, then
you will also be asked which langauage you wish to use.
When Deputy loads, after the shareware notice, you are placed
into in terminal mode, in the default emulation. Of course, when
you register Deputy, you receive a verison of Deputy without the
shareware reminder screens. You can immediately start talking to
your modem with 'Hayes' AT commands from this position.
The line at the bottom of the screen is the STATUS LINE. This
gives you information about the current status of the software
and your modem. It should look something like the first line
shown below; each item is annotated:
Deputy
DCD CTS
No Log
9600 NORM
TTY
000
00:00 0
Call Cost
Time online
RX speedometer
Terminal Emulation
MNP mode (MNP2, MNP4, MNP5)
COM speed (300-115200 bps)
Name of open log file (if any)
Status of RS232 'CTS' (clear to send) line
Status of RS232 'DCD' (carrier detect) line
Name of currently active script (if any)
The two RS232 status indicators DCD and CTS are displayed when
true (or highon) and are blank when false (lowoff). If there is
no active script (see later), then that space is occupied by
"Deputy" as shown above. Call cost is shown in pence and is
active only when the optional external call cost program is
used.
Pressing Alt-M in terminal mode will bring up Deputy's main bar
menu. From here, you can select most Deputy functions by
selecting the appropriate option. Each option on the bar menu
will bring up a corresponding sub-menu - you can press the left
or right arrows to move to the next menu along.
Alternatively, most menus can be brought up instantly by use of
hot-keys. These are shown on the main menu; for instance "Dial
Directory ALT-N". This means that to call up the dialing
directory, you press <N> whilst holding down the <ALT> key.
If this is the first time you are running Deputy, then various
preferences can now be set, in addition to those already set.
From the main Menu select setup. As mentioned previously, you
can alternatively bring up the setup menu by pressing Alt-S; see
the next section 'SETTING UP DEPUTY'.
*** REMEMBER: MENU WINDOWS CAN BE SHIFTED AROUND THE SCREEN **
*** BY PRESSING CTRL-LEFT/CTRL-RIGHT OR CTRL-UP/CTRL-DOWN ***
The setup menu (Alt-S or 'S' from the main menu) enables to to
customise Deputy to both your system and your personal
preferences. The menu looks like this:
S - Serial
M - Modem Control
E - Emulation
F - File Transfer
S - Screen Setup
A - Macro Setup
H - Host Setup
U - Miscellaneous
S - Save Options
Each option will bring up its own 'sub-menu' as follows:
S - Serial
This option allows you to select all of your default
communications parameters. These may need to be altered for
different services, so they can also be set for each entry in
the dialing directory (see section 10). The options are as
follows:
PORT: This selects the COM or Serial port to which your modem
is connected. Often it will be COM1, but if your computer has
more than one COM port, you may have another peripheral, such
as a mouse, connected to COM1, in which case, select and use
COM2 for your modem.
BAUD: The term 'Baud' is actually deliberately misused here; in
this context we actually mean Bits Per Second (BPS) and this
refers the speed of communication between the modem and your
computer. This should be set to the highest line speed of your
modem (eg 2400), however, if your modem supports data
compression, the Baud Rate setting should be doubled or even
trippled if you are using V42bis. Refer to your modem manual
for recommendations.
PARITY: This option controls not only the data parity (odd,
even or none), but also the byte length (7 or 8 bits). All data
types supported have only one stop bit. For most systems, a
setting of 8N1 is required but there are various systems which
support 7 bit data, normally requiring a setting of 7E1; in
particular viewdata or 'Prestel' type systems use 7E1 data.
STRIPT PARITY & CHECK PARITY: These two options are normally
only useful in special cimcumstances. They allow you to strip
the 8th bit from each byte (Binary 'AND' with 127) and discard
bytes whose parity is incorrect, respectively.
RTS/CTS: This controls 'hardware flow control' and is desirable
wherever possible, assuming that your modem supports it; you
may have to enable it on your modem with a command. Flow
control ensures that the modem and computer only receive data
when they are ready to handle it. RTS and CTS are two control
lines which form part of the modem cable.
XON/XOFF: This controls 'software flow control' and is useful
where RTS/CTS flow control cannot be used. Instead of toggling
the RTS/CTS lines, an XOFF code is sent to request that data
flow stops followed by an XON code to resume. Again, this may
also need to be enabled on your modem.
MNP: Deputy's MNP Level 5 emulation is covered in detail in
section 7. This option allows you to set the level of service
that you require: None, Level 4, Level 5 or Auto, in which case
Deputy will attempt to establish the highest level possible.
M - Modem Control
This option allows you to alter the commands which Deputy uses
to for control your modem.
PREDIAL COMMAND: This setting is often left blank but can can
be a command to enable a particular feature, such as error
correction, on your modem. A Carriage Return <CR> is
automatically sent after the command.
DIAL COMMAND: On a 'Hayes compatible' modem, the Dial command
is almost always ATD but can be suffixed by a 'T' or 'P' to
select tone or pulse dialing. If you are on an internal PABX,
you may also want to add an 9 followed by a comma to select an
outside line. eg ATDT9,
PRE-HOST and POST-HOST COMMANDS: These are the commands used by
Deputy's Host Mode to enable and disable auto-answering on your
modem. These are normally ATS0=1 and ATS0=0 respectively.
DIAL TIMEOUT: This sets the length of time that Deputy allows
for a call to connect before reporting no answer. A sensible
setting is 60 seconds; your modem may have its own timer. If a
number is engaged, the attempt will abort immediately.
DTR DISC: Some modems do not drop the line in response to DTR
dropping, particularly if you are using a non-standard modem
cable. This option allows you to enable the Hayes (tm) Standard
method for dropping the line by issuing the +++ escape sequence
followed by the ATH0 command.
ROUTING ID: Users in the UK may have access to a Mercury 2300
account, whereby calls may be routed via Mercury. If you have a
Mercury account, then you can enter your 10 digit ID code plus
any cost centre digits here. You than then select Mercury
routing from within the dial directory (see section 10). For
security purposes, you cannot display your Mercury ID, it will
be shows as a series of asterisks.
E - Emulation
This option allows you to select the default terminal emulation
for Deputy. Current emulations supported are TTY (Teletype),
VT52, VT100/102, VT200, VT320, ANSI, PRESTEL and WY60 (Wyse 60)
F - File Transfer
This controls various options with regard to File Transfer:
DOWNLOAD DIR: This option allows you to set the drive and
directory where downloaded files are to be saved. If no
directory is set, then downloads will be saved into the current
directory.
AUTO ZMODEM: This will enable Deputy to automatically start a
Zmodem download when it sees the standard Zmodem header from
the remote system.
AUTO CIS: For users of the Compuserve conferencing system, this
option will enable downloads to start automatically using the
'Compuserve B' file transfer protocol.
EXISTING FILES: If you try to download a file which already
exists on your computer then there are various actions which
Deputy can take: overwrite, abort, rename the file or to ask
you each time, which is the most flexible option. In addition,
if you are using Zmodem, you also have the option to resume a
previously interrupted file transfer which saves
retransmitting the whole file in full.
RENAME: Under some circumstances, you may wish to always change
the filename of downloaded files. If you enable this option,
you will be prompted for a new filename at every download.
ABORTED FILES: This determines the action that Deputy will take
if a download is interrupted for any reason. There are three
options: Delete the part-file, keep it, or ask you each time.
If you are using Zmodem, then interrupted downloads can be
restarted so it is worth keeping the part-file.
FORCE NAME: Although unlikely, under some circumstance, you may
wish to set the filename under which all downloads are stored.
To do this, enter the name under this option. Bear in mind that
you are likely to get continuous reminders that the file exists
if you try to download more files.
SUCCESS SOUND: Whilst a download is in progress, you may often
leave the computer and do something else. Enabling the Success
Sound will make Deputy sound a pleasant warble noise to let you
you know that a file transfer has completed.
EXTERNAL UPLOAD & DOWNLOAD: Deputy provides seven different
file transfer protocols, however there may be a specialised
protocol which you wish to use which is provided by an external
program. These two options allow you to specify the filename
and command line syntax for uploading or downloading using an
external program. Full pathnames should be specified, if
applicable.
C - Screen Setup
WRAP: Under some terminal emulations, when the cursor
reaches the end of the line, it should move down to the
start of the next line. However, should you wish to
inhibit this, disabling WRAP will cause all characters
received after column 79 to be lost, until a carriage
return is received. Most systems which you call will
never allow column 79 to be reached without a Carriage
Return anyway, so WRAP will most often be unimportant.
STATUSLINE: This enables or disables Deputy's Status Line
which is normally diaplayed at the bottom of the screen.
SHADOWS: The shadows cast by pop-up windows can be
disabled by using this option.
SCREEN MODES: This option applied to EGAVGA screens only
and allows you to select the screen mode; 25,43 or 50
lines. EGA screens should use 43 lines, whilst VGA should
use 50 lines.
SCREEN SAVER: For both privacy and reducing screen
burn-in, it is often desirable to dim a static screen
display. Enabling Deputy's Screen Saver will dim the
screen after a preset time of inactivity. Time should be
entered in seconds. This facility should not be used
with multi-tasking enviroments.
COLOURS: The 'Colours' option may take some
experimenting. It allows you to completely customize
every aspect of the Deputy colour scheme. Colours are
refered to by number. When you select each item, a grid
is displayed showing you all available colours. For
instance, if you want to select yellow on red for the
status line you would enter '78'. As well as allowing
you to select COLOUR, BLACK & WHITE or MONOCHROME mode,
the following colours can be changed:
Mainscreen - The default colour of the main terminal screen
Statusline - The colour of the status line at the bottom
Menuframe - The colour of the frame which borders menus
Menutext - Normal text within menu frames
MenuSelect - The highlighted item on a menu
Fileinfo - File information on the filetransfer window
FileinfoFr - Frame colour of the file transfer window
Prompt - Colour of static promptslabels within windows
Error - Any error messages which may occur
Errorframe - The frame around any error messages
Progressbar - The progress bar in the file transfer window
BLOCK CURSOR: By default, Deputy uses a blinking line
cursor; this option gives you a flashing block instead.
CHARACTER SET: When in VT320 mode, this selection
determines which international character set is used.
A - Macros
Deputy allows you to set up to ten Macros; these are
words or strings which you may regularly need to type. By
programming the Macros, you can send them automatically
by pressing function keys F1 to F10. Select this option
to edit them. You can insert control codes into the
macros by quoting them as three digit octal numbers,
preceeded by a reverse oblique: e.g. \007
H - Host mode setup
Deputy has a sophisticated host mode function. This
option allows you to set normal and privileged passwords.
Full details on the host mode are given in section 12.
M - Miscellaneous
This menu option controls various functions:
RAW LOGGING: When you are logging incoming text to disc
(see section 10), then Deputy will normally strip all
control codes (VT100, ANSI etc.) so that the log contains
plain text. If you require the file to include all bytes
received including control codes then enable Raw Logging.
LOCAL ECHO: If the system you are connected to does not
echo what you type, enabling Local Echo will enable you
to see what you are typing - this can be useful when you
are communicating with someone else using Deputy.
REMOTE ECHO will force all text received to be
immediately echoed back to the remote system; this could
also be useful when communicating with another Deputy
user. Note: If you have REMOTE ECHO enabled, then the
remote user should NOT have local echo enabled, and vice
versa.
CR->CRLF: Some systems do not send linefeeds with
carriage returns; if at the end of a received line of
text the cursor moves to the start of the line but not
down a line, then enabling CR->CRLF IN should cure this.
Similarly, enabling CR->CRLF OUT will add linefeeds to
all carriage returns transmitted.
BS DESTRUCTIVE: Normally, pressing the backspace key has
the effect of moving back a space. However, under
certain circumstances, you may wish the BS key to be
destructive, i.e. move back a space and remove the
character at that position.
MARGIN BELL: For some systems it may be useful to be
warned when your cursor approaches the end of a line. If
this option is enabled, Deputy will 'beep' when you pass
column 77 on the screen.
BUFFER SIZE: Once text has scrolled up of the screen you
can still view it again by calling the Review Buffer with
Alt-R. This setting defines the amount of memory
allocated to the review buffer.
NOVICE MODE: If Novice Mode is selected, whenever Deputy
is not connected to a remote service, a simple to use,
four option menu will appear on the screen. If you
disable Deputy's Novice Mode, you control it with the
normal menus and hot-keys.
EDITOR COMMAND: Deputy has a built in text editor
allowing full manipulation of text (see later section).
You may, however, prefer a different, external text
editor such as Edlin. By entering its filename here, the
external editor will be called in place of the internal
Deputy editor.
INACTIVITY TIMEOUT: This facility will prevent you
accidentally leaving your modem online and running up
phone charges; if no data is sent or received for longer
that the time specified (in seconds), then Deputy will
hang up the line. Time is entered in seconds and counts
from that time that the last data was receivedtransmitted
or a key pressed.
O - Save Options
Once you have set up your preferences, you must save
them to the config file if you want these options to be
retained when you exit Deputy, otherwise they are
temporary only. Selecting this option will save the
config file.
As mentioned previously, pressing Alt-M from terminal mode will
bring up Deputy's main menu. From here, you can select most of
Deputy's other functions. In most cases, you can bypass the main
menu and initiate each option instantly with the hot-keys by
pressing the key combination shown on the right of each option.
The main bar menu's options are as follows:
FILE SCRIPT MAIN DIAL SETUP DOWNLOAD UPLOAD EXIT HELP
The file menu (Press Alt-F) will being up these option:
O - DOS - Shell to DOS, but remain online.
X - Exit - Leave Deputy altogether
L - Logging - Turn logging on or off
P - Printer - Turn the printer on or off
D - Directory - View a disc directory
The SCRIPT menu brings up a list of available scripts, either
compiled or not compiled. The MAIN menu displays commonly used
functions of Deputy such as 'clear screen' and 'hangup'. The
DIAL option will bring up Deputy's dial directory which holds
details of the services you wish to call.
By far the most significant feature of Deputy is the
implementation of MNP5. This is the most common error correction
system currently in use and ensures clean data and increased
data speeds. Many modems support MNP5 themselves, but Deputy
allows you to add MNP5 to any modem.
There are five levels of MNP - Deputy supports levels 2,4 and 5.
Levels 4 and below are error correction levels which packetise
data and add CRC (checksums) before transfer. This enables the
receiving system to test the integrity of the received data and
to request a re-send if it was corrupted in transit (due to
line-noise or other interference). This whole process is
automatic and completely transparent to the user - all you see
is clean data, no matter how bad the line is.
MNP level 5 adds data compression to the lower levels; before
the packets are transferred, complex compression algorithms are
applied to the data which can achieve a compression ratio of up
to 2:1, effectively halving your online time. The compression
efficiency is heavily dependant on the data being sentreceived;
MNP5 works best on plain ascii text and will work worst on
pre-compressed files (eg .ARC or .ZIP files). In fact, MNP5 can
add a time overhead if you are transferring ready compressed
files, therefore it may be advisable to limit Deputy to MNP
level 4 for file transfers.
To enable MNP, select it from the 'SERIAL SETUP' menu; the
options are MNP2, MNP4, MNP5, None or Auto. In 'Auto' mode,
Deputy will attempt to establish MNP in the highest level
possible, or normal (uncorrected) mode if the remote modem
doesn't support MNP. MNP level 4 is also compatible with the
CCITT V42 error correction standard. An MNP connection will be
attempted every time your modem connects to a remote system.
Pressing Alt-I during a call will pop up a window giving
statistics on the error correction currently in use, as
appropriate. This is useful for checking line quality.
One of the most common functions of comms software is file
transfer; uploading (sending a file) or downloading (receiving a
file). There are several protocols in common use for
transferring files, each with varying efficiencies. The most
efficient protocols are Zmodem and YmodemG, although Zmodem is
by far the most flexible as it allows you to restart aborted
transfers from the point at which they were interrupted, rather
than having to resend the whole file. Deputy can also
automatically start Zmodem downloads.
NOTE: FILE TRANSFERS ARE ALWAYS IN THE BACKGROUND. You can drop
to DOS or use Deputy's other features such as the text editor
whilst the download proceeds in the background.
Deputy currently supports the following file transfer protocols:
Xmodem, Ymodem, YmodemG, Zmodem, Kermit and ASCII (where the
file is sent in raw form without headers for simple capture at
the receiving end). By using an external program, you can add
oyur own file transfer protocols to Deputy.
Uploading procedures vary according to the system which you are
dialled into, but when you are prompted to start sending the
file, press ALT-U, PageUp or select 'U' from the main menu and
then select the protocol as prompted. You will then be prompted
for the filename of the file which you wish to send; you can
include drive designations and pathnames. To display the
contents of a directory, press Alt-F, select 'directory', and
enter the pathname and the search pattern (e.g. c:*.*). You
can also bring up this directory by entering a wildcard instaead
of an upload filename.
Downloading is started by pressing Alt-D, PageDown or by
selecting 'D' from the main menu. If you are using Zmodem, and
'AutoDownload' has been enabled on the setup menu, then you do
not need to start the download - Deputy will see the Zmodem
ehaders and automatically start the download.
If you try to download a file which already exists on your disc,
Deputy can take several different actions, depending on the way
you set it up on the 'File Transfer' setup menu; options include
restarting aborted downloads. With any protocol, if you have
enabled 'Rename', then you will always be prompted to enter an
alternative filename. When you are transferring files, the
progress bar in the centre of the transfer window gives you a
quick visual indication of progress. An 'alarm' will sound (if
enabled) to indicate completion of a file transfer.
On the download and upload menus, you will also find an option
labelled "History". Selecting this will display a full listing
of all files transferred successfully.
Deputy contains its own built in Wordstar (tm) compatible text
editor. It is easy to use and allows you to edit text files and
includes various features for text manipulation.
The Editor is also used to display the review buffer; as such
you can edit and save to disc any text contained in the review
buffer. To invoke the editor in its own right, press Alt-E or
select 'Editor' from the main menu (Alt-M). The Editor takes up
half of the screen, but you can enlarge it to the full screen by
pressing <F5>. Pressing <F5> again shrinks it back to its
original size.
The filename of the current file is shown on the top status
line, together with other useful information. To load a new
file, press F3 and enter the filename along with any relevant
pathnames. To save the current file, press <F2>.
The normal keyboard editing keys are all available (cursor keys,
Pageup, Ins etc.). The following commands are available within
the text editor:
Cursor Movement Block Commands
LEFT or ^S - Character Left F7 or ^KB - Mark Beginning
RIGHT or ^D - Character Right F8 or ^KK - Mark End
UP or ^E - Character Up ^KC - Copy Block
DOWN or ^X - Character Down ^KV - Move Block
^LEFT or ^A - Word Left ^KY - Delete Block
^RIGHT or ^F - Word Right ^KW - Write Block
^W - Scroll Up ^KR - Read Block
^Z - Scroll Down ^KP - Print Block
PgUp or ^R - Page Up ^KT - Transmit Block
PgDn or ^C - Page Down
Home or ^QS - Start of Line ^QB - Find Block
End or ^QD - End of Line ^QK - Find Block End
^Home or ^QE - Top of Screen Ins - Insert/Overwrite
^End or ^QX - Bottom of Screen ^N - Insert Line
^PgUp or ^QR - Start of File ^M - Insert Line
^PgDn or ^QC - End of File Tab or ^I - Insert Tab
^B - Reformat paragraph
Del or ^G - Delete Character
F2 - Save file ^H - Delete Char. Left
^F2 - Save file as ^T - Delete Word
F3 - Load file ^Y - Delete Line
F10 - Swap position ^QY - Del. rest of line
F9 - COMPILE .DSL Alt-J - Justify on/off
F5 - Zoom in/out
The Dial Directory provides a convenient method of storing
details of the services which you regularly call. Each service
has its own entry detailing service name, number and setup
information.
To open up the dialing directory, select <N> from the main menu,
or press Alt-N from terminal mode. The first 15 entries in the
directory will be shown; if this is the first time you have used
Deputy, then the entires will be mostly blank. The entries will
look something like this:
Service Name
Key
Phone Number
Fred's System
Fred
011 555 1234
Cix (V32)
Cix
081 390 9800
Cix (V22bis)
Cix2
081 390 1244
Bix (USA)
Bix
M 0101 (617) 861 9767
The cursor keys can move up or down the directory. If there is
an entry already set up with a service which you wish to call,
move to that entry and press <ENTER>. It will then dial.
To edit an existing or blank entry, move to it using the cursor
keys and press <F2>. To add a new entry, press <F4>. A window
will pop up showing the settings for that entry, as follows:
Service Cix
- The service name
Key Cix
- A 'key' for reference
Number 0813995252
- The full telephone number
Speed DEFLT
- Setting for the DTE speed
Parity 8N1
- Data type: parity & length
Strip Parity DEFLT
- Strip the 8th bit of each byte
MNP DEFLT
- Use Deputy's built in MNP
Emulation ANSI
- Terminal Emulation
ModemCmd AT\N3
- Additional command for your modem
Macros DEFLT
- Specific macro script
Logfile DEFLT
- Name of service specific logfile
Script CIX.SCR
- Script to run after connection
DownloadDir DEFLT
- Where to store downloaded files
Tie CIX2
- Alternative entry (see 'key')
Retries DEFLT
- No. of attempts before aborting
Timeout DEFLT
- Time before aborting dial attempt
Most of the entries will not need altering; assuming that you
have set up Deputy correctly, the DEFAULT values will be
adequate. As a minimum, you must set the service name and
number. To alter each item, move to it using the cursor keys and
press <Enter>.
Many public services have several telephone numbers; if one
number is engaged or unavailable, you can instruct Deputy to
automatically try an alternative number. To do this, enter the
second number as a separate entry and give it a 'Key' in the key
field. Then enter that 'Key' into the 'Tie' field of the first
number. If you set the retries field, then the first number
will be retried before trying the second number.
Deputy keeps records of use for each entry in the Dialing
Directory. Pressing <F5> will display the statistics for any
entry, including usage details (data volumes, number of calls,
last call etc. . Pressing <F6> will display the complete usage
history of the dial directory showing all calls made.
Brackets, dashes and spaces can be used to make telephone
numbers more readable; these are ignored by the dialler. eg
'(0123) 456789' or '0123-456789'. Commas are usually
interpreted as a pause, but this may vary depending on your
modem. You can also include any iof your defined DIAL MACROS in
the number, for instance: @1 712 1234 where @1 is defined as
'9, 0101 213' under the 'modem control setup' menu.
The MACRO field can contain the name of a compiled DSL script
which uses the MAPKEY command to define the F1-F12 keys. See the
chapter on script files for more details.
The script field should contain details of an automatic script
to be run immediately after connection; see the later section
for full details on scripts. Note that normally, the dial
directory is called FROM a script in which case this field must
be left blank to prevent an endless loop.
If you require a record of all online 'transactions' then you
can set up a logging file name; all text received for the
duration of the call will be logged to that file. If the
logfile already exists from a previous call, new data will be
appended to the end. Beware, unmaintained logfiles can
potentially become very big!
Mercury Users: UK users who wish to access the Mercury 2300
service can do so by adding the prefix 'M' to the telephone
number string, as shown in the above table on the third entry.
Your Mercury id can be setup from the setup menu on Alt-S or <S>
from the main menu. This assumes that the Mercury 2200 service
is available in your area and that you have a valid account.
Logging allows you to save all text received directly to a file
as well as displaying it on screen. To start logging, select <L>
from the main menu, or simply press Alt-L. You will be asked for
a filename to save the log under which can include paths. To
stop logging and close the file, press Alt-L again. Whilst
logging is operating, the filename is shown on the status line.
Some services which you may call may have a 'real time' chat
facility. Chat mode separates incoming text from outgoing text
so that what you are writing isn't interrupted by a sudden burst
of incoming text. To enter chat mode, select <Y> from the main
menu. To return to normal terminal mode, press <ESC>.
Review allows you to scroll 'back up the page' to see text which
may have scrolled off the top of the screen. Review uses the
standard text editor so text can be edited, printed or saved to
disc (see section 6). To enter the review editor, press Alt-R
from the main terminal screen or press 'R' from the main menu.
You can clear the screen at any time by pressing Alt-W or
selecting <W> from the main menu. If you need to drop to DOS for
any reason, you can do this by pressing <O> from the Main Menu
or Alt-O. If you require a directory listing, then select
DIRECTORY from the file menu (Alt-F).
There may be various keypress sequences which you need to send
regularly; by programming Deputy's macros, you can send them
quickly by pressing the Macro keys: F1 to F12. The macros can be
set from the setup menu.
One of the most common functions of modems is for transferring
files between locations. Deputy's host mode allows you to set
your computer and modem to automatically answer and process
incoming calls, allowing users to send and receive files and
also to leave messages, both public and private. In addition,
authorized people can remotely drop down to DOS to carry out
routine system maintainance.
There is very little setting up required for the host mode; from
the normal setup menu, MODEM CONTROL has two settings relevant
to host mode which enable and disable auto-answer on your modem.
Under the HOST MODE SETUP option, you can set passwords for both
normal users and a Sysop (systems operator) - this is a security
measure to prevent unauthorised people accessing your system.
Using this method, users are asked for a user id (name) when
they log in, but they can enter anything as their id. All users
share the same password.
To make your system more sophisticated, you can create a user
file containing a list of users and unique passwords. This means
that each user can only log in under their own id. If a user
file exists, then the 'normal user password' becomes inactive,
although the Sysop Password is still available. You can create
the user file using Deputy's built in editor, as follows:
From normal terminal mode, press Alt-E to bring up the editor
and then press <F3> and type PASSWORD.TXT as the filename. On
each line, enter a username and a password, with as space
between them. You can add as many usernamespasswords as you
wish. Here is an example:
Freddie Cola
Jim Wine U
Tony Lemonade UD
Joe_Smith Coffee UD
Alan_Jones Tea D
Only a single space is required between words, but several have
been used for clarity. The 'U' or 'D' (or both) after some of
the names allow that user to either UPLOAD or DOWNLOAD files. If
the flags are not set, then the user will only be allowed to
read and post messages.
To start up host mode, press Alt-A or select 'A' from Deputy's
main menu. You are offered several further options:
Enter Host Mode - Prepare to answer incoming calls.
View messages - View the messages posted to the system.
View Mail - View the User-to-User mail file
View Activity - Shows details of who has called.
NOTE: If you view the mail or public message files, be careful
not to edit the headers as this could corrupt the message file.
If you select "ENTER HOST MODE" then the modem will be set to
answer incoming calls. Deputy will display a message to indicate
that it is ready to answer.
The Deputy Host can be personalized; There are two special host
files supplied with Deputy: HOST.HLP and SCREENST.TXT. The
first of these is the file displayed when callers type HELP;
this should not need changing but you can alter if you want to
give additional information or personalise the message. The
second file (SCREENST.TXT) is a plain ASCII file which is
displayed as soon as a user connects. Normally this message
would contain the system name and a friendly welcome message;
you can use the PC box character set to draw simple pictures. As
usual, both of these files can be edited using the built in
Editor (Alt-E).
Deputy will create three directories which the host mode uses.
HOSTDIR is used to store usage logs and message files. Two
subdirectories below HOSTDIR will also be created, called FILES
and UPLOAD. This is where you should put files for callers to
download and where uploaded files will be stored, respectively.
As a caller to the Deputy Host, operation is fairly simple. The
first screen you are presented with is the welcome message, held
in the SCREENST.TXT file (see previous section). Following that,
you are asked for your username and password. You will have
three attempts at each, resulting in disconnection if you do not
enter a correct combination after that.
Once you have completed the login procedure correctly, you will
be at the 'Read prompt' which is displayed thus: Read:
The host is controlled using simple commands, rather than by
menus - this makes it quick to operate once you are used to the
commands. For a listing and explanation of the commands, type
'HELP' at the main prompt. The 'HOST.HLP' file will be displayed
(see previous section). Something similar to the following will
display:
DEPUTY HOST MODE - ONLINE HELP
------------------------------
DIR <pattern> Show files available for download
UPLOAD Send a file to the host computer
DOWNLOAD <filename Download the specified file
TYPE <filename> Output (text) file to screen
BYE Disconnect - end your call
SAY Post a public message
MAIL Send User-to-User mail
SHOWMAIL Display private mail, addressed to you
XMODEM Select Xmodem as the default protocol
YMODEM " Ymodem " " " "
ZMODEM " Zmodem " " " "
KERMIT " Kermit " " " "
Priviledged User Commands (Available to Sysop only):
CD Change current file directory
SHELL Drop down to DOS shell
EDIT <filename> Edit file specified
In addition to these commands, pressing <ENTER> at the READ
prompt will list the available public messages and the subject
of each. If you want to read any message, type the number of
that message and press <ENTER>. If you want to post your own
message, type SAY <ENTER>. You can then enter your message. When
you are finished, enter a single period on the line and press
<ENTER>.
As well as public messages, you can post a mail message to
another user, in privacy - other callers will not be able to
read the message. Type 'MAIL <CR>' and enter the recipients name
when requested. Type your message as you would a public message,
ending the message with a single period on a line. Next time
that user logs on, he will be informed of waiting private mail.
To view private mail addressed to you, type SHOWMAIL.
If you wish to download a file, you can view the available files
by typing DIR, followed optionally by a search pattern - if no
pattern is given, it defaults to *.* (all files available). To
start the download, ensure you have selected your preferred file
transfer protocol (Xmodem,Ymodem,Zmodem or Kermit) and type
DOWNLOAD <filename>. Then start your own local download as
required by your own particular software (If you are using
Deputy then press PageDown to start a download). NOTE: If a
userlist file (password.txt) is being used, you must have your
UPLOAD or DOWNLOAD flags enabled to be able to transfer files.
Using a script langauge is a way of automating Deputy's
operation to enable functions to be carried out without human
intervention, as far as possible. Most often, a simple script
will perform a task such as sending login sequences and
passwords automatically, saving you from having to type them
manually each time you call systems.
A Deputy script, is a sequence of commands with a similar syntax
to many other programming langauges. There are two ways to
create scripts with Deputy.
1) Using the SCRIPT LEARN command from the main menu, instructs
Deputy to watch what you do whilst you manually log onto a
system. A script is then automatically written which will copy
exactly that sequence the next time you logon to that system.
This method is very simple to use, without the user requiring
any knowledge of the script langauge.
2) By using the text editor to manually write a list of commands
for Deputy to sequentially execute - this gives you the greatest
flexibility and allows you access to the complete command set.
Customisation is very simple but this method requires
substantially more work than method 1.
NOTE: Deputy's script language (DSL) is based heavily on the
Modula-2 command language, but due to historical reasons, there
are also some deliberate similarities to the language provided
by Odyssey, a program written by Don Milne, also based on
Modula-2, whom we hereby credit. It should be noted however,
that scripts written for Odyssey will need considerable syntax
and command translation to run under Deputy, and vice-versa, as
there are very few actual commands in common.
Before starting the learn facility, make sure that you have
already added the service details to the dial directory (see the
section on the dial directory). Ensure that the entry has a
'key' entered into its key field for the script to refer to.
Make sure that you are out of the dial directory, in normal
terminal mode.
Start the learn procedure by pressing Alt-M to bring up the main
menu and then 'K'. Alternatively, press ALT-K from terminal mode
which is the hot-key command for script learn. You will be asked
to enter a name for the script - we suggest that you use
something which relates to the entry if possible; for instance
if the service is called "Freddy's System" call the script
'Freddy' - that way it's easy to tell which entry that service
belongs to. The script name requires an extension .SCR - if you
omit this, Deputy will add it automatically. Press <ENTER> and
the word "LEARNING" will appear on the left hand side of the
status line to indicate that Deputy is in LEARN MODE.
Bring up the Dial Directory (Alt-N or 'N' from the main menu),
move to the relevant entry (previously entered) and press
<ENTER> to select it. Deputy should now dial the number.
Once connected, login to the system normally. Deputy will be
'watching you' and will remember all of your keystrokes. Once
you are logged in and want to stop script leaning, press ESCAPE
or Alt-K.
To test the script, bring up the dial directory (Alt-N) and
select the entry. The system should be dialled and the login
sequence, including your usernames and passwords should be typed
automatically. The script created (with a .DSL extension can be
viewed and edited as if you had written it youself.
NOTE: If an error occurs duing the learn sequence, such as the
number being engaged or you making a typing error, you should
abort learning and restart from the beginning.
PLEASE REMEMBER: Deputy's script language is a highly complex
programming enviroment; as such, the instructions here are only
intended to give you the bare essentials for writing scripts. It
is impossible to give full documentation in this file - the
printed manual, which you receive when you register, goes into
script writing in very great depth with full command listings
and examples.
Deputy's script language (DSL) is a highly sophisticated
programming platform. The structure and syntax will be familiar
to programmers who have programmed in the MODULA 2 langauge.
DSL is a compiled language; scripts, which can be written using
Deputy's text editor, consist of a sequence of commands and are
compiled before execution.
A script file, before compilation, is known as the source file
and will usually has the extension ' .DSL '. A compiled script
file (also known as an executable script) has the extension '
.SCR'. You can only edit and write .DSL files - files with the
.SCR extension should be left alone.
Scripts are run from the script menu, accessed either from the
main menu or by pressing Alt-C. This menu displays all DSL
scripts,whether compiled or not - if you select a script which
is not compiled then Deputy will automatically compile it before
running it. Similarly, if a source script with the extension
.DSL has a date which is newer than its corresponding compiled
script, then the newer version is recompiled boefre executing.
There are about 130 commands of which there are two basic types:
Functions and Procedures. Both types carry out particular
features, but functions return a Boolean result (i.e. TRUE or
FALSE) after execution indicating the success or failure of that
function.
There are several example scripts supplied with Deputy; examine
these carefully in order to gain a full underatanding of how DSL
works. The printed manual goes into much greater depth than is
possible in this shareware manual.
A DSL script must start with the line ' SCRIPT scriptname; '.
The main script body must be contained within BEGIN and END
commands; any variables required must be defined before the main
script body (see 'variables' below). A semicolon must be used to
terminate all commands.
NOTE: Throughout this section, various script examples are
shown; the indentation used on each line is optional but is
commonly used by programmers to make scripts more readable.
Variables
A variable is a name assigned a to a particular numeric or
boolean value. A variable name can be any length but cannot
share the same name as a function, procedure or any other
keyword. Any variables which you wish to use in a script must be
defined at at the start of the script, before the 'BEGIN'
command. The structure of the script will then be:
SCRIPT test;
VAR
ok: BOOLEAN;
time: INTEGER;
(Any other variables to be defined here)
BEGIN
(main script body here)
END.
To assign a variable name to a value in DSL you use the syntax:
'varname := expression ' where varname is the name which you
wish to assign the value to and 'expression' is any numeric or
boolean value. As well as assigning a variable to a fixed
values, you can assign a variable name the result of a function.
Some examples follow:
happy := TRUE ( The variable 'happy' will be set to TRUE)
cars :=27 ( The variable 'cars' will be set to '27' )
start := TIME() ( The variable 'start' will store the result
of calling the TIME function )
was_dcd := DCD() ( The result of the DCD function will be put
in the variable 'was_dcd' for later use )
timenow := TIME()-start ( Will set 'timenow' to the time elapsed
since the variable 'start' was defined )
Conditional Constructions
-------------------------
Procedures and functions can be used simply, i.e. in a straight
sequence, or can form part of a more complex construction. If
commands form part of a construction, then the actions taken are
dependant on a particular condition.
To test for conditions, comaparisons are made between two values.
The values used are known as expressions, and are can be either
plain integers (1, 2, 140 etc.), variables, variable calculations,
variable comparisons, functions or anything else which can produce
a boolean value when evaluated (TRUE or FALSE).
The action taken by a conditional construction is defined by a
statement. A statement can be any command, procedure or function
call.
Valid syntax for calculation and comparison operations are as
follows: + - * <= >= = <> OR XOR DIV MOD AND SHL SHR. Calculation
operations can also be applied directly to variables, independant
of conditional structures. e.g. num1 := (num2+num3)*num4.
There are four types of conditional construction, as follows:
IF <Expression> THEN <Statement_sequence> ELSE <Statemene> END;
The IF construction is the most commonly used. The execution of the
statement immedately after the 'THEN' is dependant on the
expression specified being TRUE when evaluated. If the expression
proves to be FALSE, then the action specified by the statement
after the ELSE is executed. The ELSE part of the construction is
optional but the whole construction must end with an 'END'.
Example: A boolean variable 'happy' has been previously defined to
indicate the users mood. A TRUE value indicates that he was happy.
We can then issue the command:
IF happy THEN WriteStr('I am happy');
ELSE WriteStr('I am Sad');
END;
The WriteStr() command writes text to ther screen and is detailsed
later. As shown, if the 'happy' variable is TRUE THEN THE "I am
happy" message will be displayed. If the 'happy' variable was
FALSE, then the "I am sad" message will be displayed. Note: The
above command can be written all on one line, but can be split for
clarity, as shown. Remeber, DSL is not case sensitive, so upper or
lower case can be used throughout.
If more than one command is required to be executed, dependant on
the expression, then compound statements can be made thus:
IF happy THEN
WriteStr('I am happy');
Alarm;
WriteStr('I am very very happy !');
ELSE
WriteStr('I am Sad, so I'm exiting now !');
HaltDeputy;
END;
WHILE <Expresssion> DO <Statement> END;
This condition forms a loop, and is fairly self-explanatory. The
expression is evaluted and if found to be TRUE, the statement is
executed. The expression is then evaluated again and if still TRUE,
the statement is executed again, and so on, until the expression
becomes FALSE.
REPEAT <Statement> UNTIL <Expression>;
This is similar to the WHILE...DO construction, except that the
condition is tested at the bottom of the loop, rather than at the
top and exits once the condition becomes TRUE. This means that the
statement is executed once, regardless of the expression's
evaluation; from then on the statement is re-executed continuously
until the statement becomes TRUE.
CASE <Expression> OF <Integer> : <Statement> ELSE <Statement> END;
This construction allows you to execute any number of statements
depending on the numercial value of the expression specified.
Functions
---------
All functions return either a BOOLEAN value (True or False) or an
INTEGER (a whole number). Usually, if a function carries out a
specific action (such as dialing a number), then it will return a
TRUE value if that action was successful, or FALSE if it failed.
Deputy is not case sensitive; upper or lower case can be used
throughout a script. Functions can be used within conditional
structures, or the result can be stored in a variable for later
use.
To store a function's result in a variable, the syntax is: result
:= function , where result is the variable name - it must be the
same variable type (boolean or integer) as result returned by the
function.
The following is a full list of all DSL commands. In this shareware
version of the manual we only list the commands themselves, due to
space constraints. In the full printed manual, they are listed in
full detail, together with examples.
I/O and Modem Commands
----------------------
PROC Break(Duration);
FUNC CTS() : BOOLEAN;
FUNC DCD() : BOOLEAN;
FUNC DSR() : BOOLEAN;
PROC RTS(BOOLEAN);
PROC DTR(BOOLEAN);
FUNC RI(); BOOLEAN;
FUNC Dial(Key) : BOOLEAN;
PROC Hangup();
PROC Nap();
FUNC Receive(Timeout,Flag) : String;
FUNC RecChar(Timeout,Flag) : String;
PROC SendStr(String);
Screen and Keyboard Commands
----------------------------
PROC BackGnd(Colour);
PROC ForeGnd(Colour);
PROC GotoXY(X,Y);
PROC ClrScr();
PROC ClrEOL();
PROC ClrEOS();
PROC Cursor(TRUE or FALSE);
PROC DelLine();
PROC InsLine();
PROC StatusLine(TRUE or FALSE);
FUNC KeyPressed() : BOOLEAN;
FUNC RdKey() : INTEGER;
PROC MapKey(Keyvalue,String);
FUNC Menu(X,Y,Width,Title,Options...,Flag) : INTEGER;
PROC Read(StringName);
PROC Silent(TRUE or FALSE);
FUNC WhereX() : INTEGER;
FUNC WhereY() : INTEGER;
PROC WhereMouse(X,Y);
FUNC ReadMouse() : INTEGER;
PROC Mouse(BOOLEAN);
FUNC Window(X,Y,Width,Height,Title,Colour) : INTEGER;
PROC UseWindow(Handle);
PROC CloseWindow(Handle);
PROC WriteStatus(Text);
PROC Write(String);
PROC WrStr(String);
PROC WrLn(String);
File and Disk Commands
----------------------
FUNC ChDir(Directory);
FUNC MkDir(Directory);
FUNC DirFirst(Wildcard,Attrib,Filename,RealAttrib);
FUNC DirNext(Filename,Attrib);
PROC DOSCMD(Command,Boolean);
FUNC Download(Protocol,Filename): BOOLEAN;
FUNC Fcopy(SourceFilename,DestFilename) : BOOLEAN;
FUNC Fdelete(Filename) : BOOLEAN;
PROC Fedit(Filename);
FUNC Feof(FileHandle);
FUNC Fexists(Filename);
FUNC Fopen(Filename) : INTEGER;
FUNC FAppend(Filename) : INTEGER;
FUNC Fcreate(Filename) : INTEGER;
PROC Fclose(HandleVariableName);
PROC Fread(HandleVariable,StringVariable);
PROC Fwrite(FileHandle,StringVariable);
PROC FwriteLn(FileHandle,StringVariable);
PROC Fseek(FileHandle,Position);
FUNC FTell(FileHandle) : INTEGER;;
PROC FRdChar(FileHandle,CharVariable);
PROC FWrChar(FileHandle,Char);
PROC Ftype(Filename);
FUNC DiskSpace() : INTEGER;
FUNC CurrentDir() : INTEGER;
FUNC Fsize(filename) : INTEGER;
FUNC GetString(Filename,SearchKey,StringVariable);
PROC OpenLog(Filename);
PROC CloseLog();
FUNC Upload(Protocol,Filename) : BOOLEAN;
Watching and Waiting Commands
-----------------------------
FUNC Opencount(String) : INTEGER;
PROC CloseCount(Handle);
FUNC ReadCount() : INTEGER;
FUNC Grab(String) : INTEGER;
FUNC Grabbed(Handle) : STRING;
PROC Delay(Seconds);
PROC Tdelay(18ths/sec);
FUNC CloseGrab(Handle) : BOOLEAN;
FUNC WaitStr(String,Handle) : INTEGER;
FUNC DoWait() : INTEGER;
FUNC WaitFor(String,Seconds) : BOOLEAN;
FUNC WhenSeen(String,SendString): INTEGER;
PROC ClearWhen(Handle);
Miscellaneous Commands
----------------------
FUNC ABS(IntegerVariable) : INTEGER;
PROC Alarm([time]);
FUNC Arg() : INTEGER;
PROC Call(Scriptname,[Argument]);
PROC Chain(scriptname[(Argument]);
FUNC Cap(CharVariable) : CHARACTER;
FUNC Caps(String)
FUNC Chr(IntegerVariable): CHARACTER;
FUNC Ord(char) : INTEGER;
FUNC Date() : STRING;
PROC GetEnv(EnvString,ReturnString);
FUNC Time() : STRING;
PROC DateNow(WeekDay,Day,Month,Year);
PROC TimeNow(Hr,Min,Sec);
PROC Debug(TRUE or FALSE);
FUNC DEC(VariableName[,Decrement]) : INTEGER;
FUNC INC(VariableName[,Increment]) : INTEGER;
FUNC Encrypt(String,Key) : STRING;
FUNC Decrypt(String,Key) : STRING;
PROC HaltDeputy;
PROC HaltScript;
PROC IntToStr(IntegerName,StringName);
PROC StrToInt(StringName,VariableName);
FUNC Length(String) : INTEGER;
PROC Tdelay(Ticks);
FUNC POS(String1,String2) : INTEGER;
FUNC Slice(StringName,Start,Length) : STRING;
PROC PrinterLog(TRUE or FALSE);
FUNC ScriptTime() : INTEGER;
PROC Shell();
FUNC Version() : STRING;
Deputy Setup Commands
---------------------
FUNC DownloadDir(DirectoryName) : STRING;
FUNC DTESpeed(SPEED) : INTEGER;
FUNC ExistingFile(OPTION) : INTEGER;
FUNC Inactivity(TIME) : INTEGER;
FUNC CharDelay(Ticks) : INTEGER;
FUNC LineDelay(Ticks) : INTEGER;
FUNC SetEmulation(Emulation) : INTEGER;
FUNC SetMNP(Level) : INTEGER;
FUNC SetParity(TYPE) : INTEGER;
FUNC SetPort(PORT) : INTEGER;
FUNC AutoCis(TRUE or FALSE);
FUNC AutoZ(TRUE or FALSE);
FUNC CRLFIN(TRUE or FALSE);
FUNC CRLFOUT(TRUE or FALSE);
FUNC LocalEcho(TRUE or FALSE);
FUNC RemoteEcho(TRUE or FALSE);
FUNC SetStrip(TRUE or FALSE);
FUNC SoftFlow(TRUE or FALSE);
FUNC HardFlow(TRUE or FALSE);
SCRIPT Mickey;
(* Deputy DSL Demonstration Script Version 1.3 *)
(* Copyright 1992 Michael Spalter & S/E/G *)
(* This script makes use of the following DSL commands:
Functions Returning Booleans Procedures
---------------------------- ----------
Fexists(filename) FDelete(filename)
DCD FRename(oldname,newname)
FEOF(filehandle) Write(string)
KeyPressed WrLn
ClrScr
Hangup
Functions Returning Integers WriteStatus(String)
---------------------------- Alarm
FileSize(filename) ForeGnd(colour)
ScriptTime BackGnd(colour)
Pos(searchstring,bigstring) OpenLog(filename)
Length(stringvar) CloseLog
ABS() WhereY GoToXY(x,y)
Menu(....) StatusLine(Boolean)
INC(integervar[,number])
Functions Returning Strings StrToInt(string,intvar)
--------------------------- Read(stringvar)
Time
Date
Caps(StringVar) *)
(* First, define the variables used in the script *)
VAR YourName:String[18];
Happiness:Integer;
Value:Integer;
FileLine:String[78];
ValueString:String[15];
LineCount:Integer;
FileBytes:Integer; (* This is an enclosed comment *)
People:String[20]; (* Comments can be placed anywhere *)
FileHandle:Integer; (* and are ignored by Deputy's Compiler *)
(* Note: Apostrophes and Inverted commas are identical in function
It's best to use one type. In this script we have tried to use
apostrophes only,but where we need to write an apostrophe
to the screen, we use the inverted commas instead. *)
(* Now the actual main script body starts *)
BEGIN
StatusLine(TRUE);
ClrScr;
WriteStatus(' Welcome to the Deputy Demonstration script !');
StatusLine(TRUE);
Alarm();
OpenLog('Test.LOG');
GoToXY(20,10);
Write(' Hold on a few seconds......');
WHILE ScriptTime()<3 DO END;
WrLn;
ClrScr;
WriteStatus('');
GoToXY(0,5);
Write("\t The date is ",Date,", and the time is ",Time); WrLn;
Write('\t This is a sample script using the Deputy'); WrLn;
Write('\t script language. It is designed to show '); WrLn;
Write('\t the use of as many commands as possible.'); WrLn;
FileBytes:=FSize('DEPUTY.EXE');
Write('\t The Deputy program is ',Filebytes,' bytes long,'); WrLn;
Write('\t and this script has been running ',ScriptTime(),' Secs.');
WrLn; WrLn;
Write('\t Who is with you (their names please) ? ');
Read(People); WrLn;
IF POS('JIM',Caps(People))<>-1 THEN
Write('\t I see that Jim is with you !'); WrLn;
ELSE
Write('\t I see that Jim is NOT with you with you !'); WrLn;
END;
Write('\t By the Way, that string was ',Length(People),' bytes');
WrLn; WrLn;
Write('\t Please enter a negative number: ');
Read(ValueString); WrLn;
StrToInt(ValueString,Value); (* Convert it to an Integer first *)
Write('\t Okay. Without the sign, it equals ',ABS(Value)); WrLn;
Write('\t The Cursor is now at ',WhereX,',',WhereY()); WrLn;
WrLn;
Write("\t Please type in your first name: ");
Read(YourName); WrLn;
Write("\t I'm now going write your name to a file....");
Filehandle := FCreate('TestFile.TXT');
FWrite(FileHandle,YourName);
FClose(FileHandle);
Write('Done ! '); WrLn; WrLn;
IF NOT Fexists('TestFile.TXT') THEN
Write("\t Arrgghh ! File didn't Write properly !"); WrLn;
ELSE
Write("\t That seemed to work. Now I'll read it back.....");
YourName:= ''; (* Clear the String *)
FileHandle := FOpen('TestFile.TXT');
FRead(FileHandle,YourName);
FClose(FileHandle);
Write('Done !'); WrLn;
Write("\t According to the file, your name is ",YourName,".");
WrLn;
Write("\t I'll just delete that file now."); WrLn;
FDelete('TestFile.TXT');
END;
WrLn;
Write('\t Press any key to go on......');
WHILE NOT Keypressed() DO END;
WrLn;
ClrScr();
REPEAT Value:=RdKey() UNTIL NOT Keypressed(); (* Clear Kbd Buffer *)
Happiness := 1 + Menu(24,3,30,"How happy are you ?",
"1 - Extremely happy ",
"2 - Very Happy ",
"3 - Quite Happy ",
"4 - Content",
"5 - Nonchalent",
"6 - A little sad",
"7 - Upset",
"8 - Completely distraught",28);
GoToXY(0,2);
CASE Happiness OF
1: Write("\t So, you're extremely happy - Good !");|
2: Write("\t You're very happy apparently");|
3: Write("\t You are quite happy - that's nice");|
4: Write("\t You are content - barely happy :-(");|
ELSE
Write("\t You are not happy at all - what a shame!");
END;
WrLn; WrLn;
IF NOT DCD THEN
Write('\t You are currently not online.'); WrLn;
ELSE
Write("\t You are currenly online, I'll just hangup"); WrLn;
Hangup;
END;
CloseLog;
FRename('Test.LOG','NewTest.LOG');
WrLn;
Write("\t Press a key to see a directory of your disc....");
WHILE NOT Keypressed() DO END;
REPEAT Value:=RdKey() UNTIL NOT KeyPressed(); (* Clear Kbd Buffer *)
DOSCMD('CLS',FALSE);
DOSCMD('DIR /w',TRUE);
ClrScr;
GoToXY(0,2);
If Fexists('NewTest.LOG') THEN
Write("\t Press any key for a review.......");
WHILE NOT Keypressed() DO END;
Happiness := RdKey();
WrLn; WrLn;
FileHandle:=FOpen('NewTest.LOG');
LineCount:= 0;
Repeat
FRead(FileHandle,FileLine);
ForeGnd(White);
Write('Review [ ');
ForeGnd(Yellow);
Write(FileLine);
Foregnd(White);
GoToXY(79,WhereY()); Write(']'); WrLn;
INC(LineCount);
If LineCount MOD 10 = 0 THEN
WrLn;
Write(' [ Press any key to continue ]');
WHILE NOT Keypressed() DO END;
While Keypressed() DO RdKey() END;
WrLn; WrLn;
END;
UNTIL FEOF(FileHandle);
WrLn;
FClose(FileHandle);
FDelete('NewTest.LOG');
Write(' [ End of Review (Length: ',LineCount,' Lines) ]');
END;
WrLn; WrLn;
Write('That is the end of the script !'); WrLn; WrLn;
Deputy is normally started by simply typing DEPUTY at the command
line. There are however a number of options which can be added as
arguments to alter the way Deputy works. The syntax is:
DEPUTY -rts -bw -vpix -x nn -tcp -18 script.scr
Some slow PC's may take longer to complete disc writes during file
downloads or logging - if this causes you constant errors, the
'-rts' suffix on the command line will enable RTS toggling during
disc writes.
If you are using a black and white monitor and you intend calling
colour services such as Prestel (or a service using ANSI colour)
then the dark colours such as red may not be visible. Use this -bw
option to foce all shades to white.
If you want to automatically execute a DSL script from the command
line, then you can do so by typing the script name, as shown. It
must be a precompiled script, not a .DSL file.
The -x nn parameter allows you to specify a timeout value for Xoff
interpretation if you are using soft flow control. nn should be a
decimal value in second.
The -tcp and -vpix options are specialised facilities for network
services and should not be used for normal operation.
The publisher and Authors would like to express their grateful
thanks to everyone involved in the development of Deputy. In
particular, the following for their considerable help with
Beta-Testing Deputy, in no particular order:
Alan Saul Paul Whelan Barry Parker David Senior
Don Milne Chris Moore Dave Parry Dave Buckley
Charles Gillanders Mel Pullen David Debono Geoff Boyle
Simon Brierley-Jones Glyn Foster Graham Creek Rob Nicholson
Vassilis Konstantinou Keith Howell Ken Coyne Sean Keogh
Alec Chattaway Gary Marden Richard Cox Martin Rodgers
Matthew Simms Martyn Bright Mike Rogers Mike Zanker
Peter Ellefsen Pete Bentley Paddy O'Hanlon Rod Ellery
Simon Bramfitt Rob Rook Tim Wilson Peter Humphrey